Preprocesamiento de datos#
La limpieza de datos es un paso crítico en el desarrollo de modelos de machine learning, ya que garantiza que los datos utilizados para entrenar y evaluar los modelos sean precisos, confiables y representativos, lo que a su vez mejora la calidad y la eficacia de los modelos resultantes.
import pandas as pd
from numpy import NaN
import numpy as np
import requests
import plotly.express as px
import os
df = pd.read_parquet("Data/raw_data.parquet")
df.head()
| departamento | municipio | armas_medios | fecha_hecho | genero | grupo_etario | cantidad | |
|---|---|---|---|---|---|---|---|
| 0 | ATLÁNTICO | BARRANQUILLA (CT) | ARMA BLANCA / CORTOPUNZANTE | 1/01/2010 | MASCULINO | ADULTOS | 1 |
| 1 | BOYACÁ | DUITAMA | ARMA BLANCA / CORTOPUNZANTE | 1/01/2010 | FEMENINO | ADULTOS | 1 |
| 2 | CAQUETÁ | PUERTO RICO | ARMA BLANCA / CORTOPUNZANTE | 1/01/2010 | MASCULINO | ADULTOS | 1 |
| 3 | CASANARE | MANÍ | ARMA BLANCA / CORTOPUNZANTE | 1/01/2010 | FEMENINO | ADULTOS | 1 |
| 4 | CUNDINAMARCA | BOGOTÁ D.C. (CT) | ARMA BLANCA / CORTOPUNZANTE | 1/01/2010 | FEMENINO | ADULTOS | 1 |
Ajustes para columnas, valores nulos y duplicados
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 575721 entries, 0 to 575720
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 departamento 575721 non-null object
1 municipio 575721 non-null object
2 armas_medios 575721 non-null object
3 fecha_hecho 575721 non-null object
4 genero 575721 non-null object
5 grupo_etario 574110 non-null object
6 cantidad 575721 non-null int64
dtypes: int64(1), object(6)
memory usage: 30.7+ MB
Tratamiento de Datos Faltantes y Atípicos#
df.isnull().sum()
departamento 0
municipio 0
armas_medios 0
fecha_hecho 0
genero 0
grupo_etario 1611
cantidad 0
dtype: int64
fig1 = px.box(df, x = 'grupo_etario', y = 'cantidad', title="Cantidad de Casos por Grupo Etario", notched = False)
fig1